const express = require('express');
//1. 安装 npm i express-session connect-mongo
//2. 导入模块
const session = require('express-session');
const MongoStore = require('connect-mongo');

const app = express();
//3. 配置 express 的中间件
app.use(session({
  name: 'sid',   //设置cookie的name，默认值是：connect.sid
  secret: 'atguigu', //参与加密的字符串（又称签名） 加盐
  saveUninitialized: false, //是否为每次请求都设置一个cookie用来存储session的id
  resave: true, //是否在每次请求时重新保存session
  store:MongoStore.create({
      mongoUrl: 'mongodb://127.0.0.1:27017/h5220707' //数据库的连接配置
  }),
  cookie: {
      httpOnly: true, // 开启后前端无法通过 JS 操作
      maxAge: 1000 * 300 // 这一条 是控制 sessionID 的过期时间的！！！
  },
}));

app.get('/home', (req, res) => {
  res.send('session 的演示')
});

//设置 session,  登录成功以后, 发送验证码
app.get('/set-session', (req, res) => {
  //
  req.session.name = 'zhangsan';
  req.session.email = '123@qq.com';

  res.send('设置 session');
})

//读取 session 
app.get('/get-session', (req, res) => {
  //
  console.log(req.session.name);

  res.send('读取 session');
})

//删除 session
app.get('/clear-session', (req, res) => {
  //清理session
  req.session.destroy(() => {
    res.send('清理session');
  })
})

  
app.listen(8081, () => {
  console.log('服务已经启动, waiting for connection on port 8081')
})